#include "../source/common/dispatcher.hpp"
#include "../source/server/rpc_server.hpp"
// 需要把服务信息管理集合到服务端中
using namespace zyb_rpc;
using namespace std;
void Add(const Json::Value &req, Json::Value &rsp)
{
    int num1 = req["num1"].asInt();
    int num2 = req["num2"].asInt();
    rsp = num1 + num2;
}
int main()
{
    std::unique_ptr<server::SDescribeFactory> desc_factory(new server::SDescribeFactory());
    desc_factory->setMethodName("Add");
    desc_factory->setParamsDesc("num1", server::VType::INTEGRAL);
    desc_factory->setParamsDesc("num2", server::VType::INTEGRAL);
    desc_factory->setReturnType(server::VType::INTEGRAL);
    desc_factory->setCallback(Add);
    Address addr("127.0.0.1", 9090);
    server::RpcServer server({"127.0.0.1", 9090});
    server.registerMethod(desc_factory->build());
    server.start();
    //  也就是说 server收到消息后，通过dispatcher模块的onMessage接口进行处理
    //  onMessage接口可以处理不同类型的消息并转发给不同消息的处理模块
    //  如果发现是rpc请求 就调用rpcrouter中寻找 如果注册了的函数 就调用。这些函数都在RpcRouter::onRpcRequest中存储
    //
}
